//
//  tutu_os.h
//  device
//
//  Created by ffly on 2021/3/16.
//

#ifndef __XLX_OS_H__
#define __XLX_OS_H__

#include <inttypes.h>
#include "xlx_common.h"

typedef struct {

    /*重启设备*/
    void (*restart)();

    /**关闭设备*/
    void (*power_off)();

    //系统休眠时间，秒
    void (*sleep)(int second);

    //系统休眠时间，毫秒数
    void (*sleep2)(int millisecond);

    //获取当前时间戳,秒
    uint32_t (*get_utc_timestamp)();

    //获取系统运行至今时间
    uint32_t (*get_ticks)();
    
    //DNS解析ip
    char (*getaddress)(const char *url,char *ipbuf,int buflen);

    //获取cpuid，长度16字符
    void (*get_cpuid16)(char *output);

    //设置系统时间
    void (*set_rtc_time)(TutuTime *time);

    //获取系统时间
    void (*get_rtc_time)(TutuTime *time);

    //网络校准系统时间
    void (*sync_ntp)(void);

    //喂狗
    void (*watch_dog_kick)(void);

    //日志串口是否开启
    void (*uart_log_enable)(int);

    //获取总的内存大小
    unsigned long (*get_memory_total_size)(void);
    //获取空闲的内存大小
    unsigned long (*get_memory_free_size)(void);

    char (*play_tts)(char * tts_txt, char block_play, uint32_t block_time);
}TutuOS;

//初始化
void TutuOS_Init(TutuOS *myself);
void tutuos_get_rtc_time(TutuTime *time);
char get_app_all_init_flag(void);

#endif /* tutu_os_h */
